home *** CD-ROM | disk | FTP | other *** search
/ Utilities Professional 1-1500 / Utilities Professional 1-1500 (1994)(WPD)[!].iso / 12511500 / var1308.dms / var1308.adf / DNET2_10.LHA / DNet / Amiga / Sourcen.lha / lib / dgetioctl.c < prev    next >
C/C++ Source or Header  |  1993-01-14  |  682b  |  35 lines

  1.  
  2. /*
  3.  *  DGetIoctl.C
  4.  */
  5.  
  6. #include "lib.h"
  7.  
  8. short
  9. DGetIoctl(_chan, pval, paux)
  10. void *_chan;
  11. short *pval;
  12. char *paux;
  13. {
  14.     CHANN *chan = (CHANN *)_chan;
  15.     IOSTD *ior;
  16.     short cmd = -1;
  17.  
  18.     if ((ior = (IOSTD *)GetHead(&chan->rdylist)) || (ior = (IOSTD *)GetHead(&chan->port.mp_MsgList))) {
  19.     if (ior->io_Command == DNCMD_IOCTL) {
  20.         CIOCTL *cio = (CIOCTL *)ior->io_Data;
  21.         cmd = cio->cmd;
  22.         *pval = (cio->valh << 8) | cio->vall;
  23.         *paux = cio->valaux;
  24.         Forbid();
  25.         Remove((NODE *)ior);
  26.         ReplyMsg((MSG *)ior);
  27.         Permit();
  28.     }
  29.     }
  30.     FixSignal(chan);
  31.     if (chan->eof)
  32.     SetSignal(1 << chan->port.mp_SigBit, 1 << chan->port.mp_SigBit);
  33.     return(cmd);
  34. }
  35.